#ifndef HAVE_TEXT2XML_PYTEXTPARSER_H
#define HAVE_TEXT2XML_PYTEXTPARSER_H

#include <Python.h>
#include "parser.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef Parser*     (*ParserNewFunc)  (void);
typedef void        (*ParserFreeFunc) (Parser*);
typedef int         (*ParserRunFunc)  (Parser*,
                                       const char*,
                                       ParserCallbackFunc,
                                       void*);
typedef void        (*ParserStopFunc) (Parser*);
typedef const char* (*ParserErrorFunc)(Parser*);

typedef struct {
  PyObject_HEAD
  void*           dlhandle;
  Parser*         parser;
  ParserNewFunc   parser_new;
  ParserFreeFunc  parser_free;
  ParserRunFunc   parser_run;
  ParserStopFunc  parser_stop;
  ParserErrorFunc parser_error;
  PyObject*       callback;
} TextParser;

#ifdef __cplusplus
}
#endif                          /* __cplusplus */
#endif                          /* HAVE_TEXT2XML_PYTEXTPARSER_H */

